草庐IT

MySQL IF THEN 在 WHERE 子句中

全部标签

MySQL 使用 WHERE 子句平均分布随机行

我有这张table,person_idint(10)pkpointsint(6)indexothercolumnsnotveryimportant我有这个随机函数,它在具有1000万行的表上非常快:SELECTperson_idFROMpersonsASr1JOIN(SELECT(RAND()*(SELECTMAX(person_id)FROMpersons))ASid)ASr2WHEREr1.person_id>=r2.idORDERBYr1.person_idASCLIMIT1一切都很好,但现在我希望只显示积分>0的人。示例表:PERSON_IDPOINTS14263043当我将A

mysql - 带有别名的 GROUP BY 子句?

有谁知道为什么我无法在此查询中对TotalSales进行分组,如果可以,我该如何解决:selectcoalesce(Author_ID,'AllAuthors')asAuthor_ID,casewhenAuthor_IDisnullthen''elsecoalesce(Book_ID,'AllBooks')endasBook_ID,TotalQuantity,coalesce(TotalSales,'NoSales')asTotalSalesfrom(selectauthor_idasAuthor_ID,book_idasBook_ID,sum(quantity)asTotalQuan

mysql - 有没有办法识别那些在 where IN() 语句中找不到的记录?

来自PHP代码$Lines被定义为加入列表,例如123,146,165,1546,455,155plant表具有最高idPlant(唯一标识符)例如1000的顺序记录。我的简单SQL查询:SELECT*FROMplantWHERE`plant`.idPlantIN($Lines)orderbyplant.idPlant;这会返回“123,146,165”等的行数据。是否会被告知未找到“1546”?(因此用户可能输入了错字,我不能使用“确认所有数字都低于X”,因为在真实数据中idPlant可能不是连续的,上限会在使用过程中增加)。更新:希望获得能够告诉我未找到哪些数字的输出。

mysql - 添加了 AND 子句的 Django LEFT JOIN 查询 : possible?

我正在尝试执行一个DjangoORM查询,其中包含LEFTJOINON(condition)AND(condition)。但我不知道如何执行额外的AND条件,将JOIN抛出很长很长的路。添加具有第二个条件的Django过滤器没有帮助-它最终以WHERE子句结束,而不是JOIN中的AND子句。是否可以在ORM中加入ONconditionANDcondition,还是应该只使用SQL语句?如果可能的话,你是怎么做到的?就其值(value)而言,这是我试图转换为Django的SQL查询:SELECT`editions_edition`.`name`ASedition,etcFROM`edit

php - Mysql WHERE列在字符串中

我希望这不是一个非常愚蠢的问题,但几个小时以来,我一直在寻找解决方案,但没有成功。我有一张包含城市名称的表格:城市名称柏林纽约汉堡...我有一个字符串:“波恩纽约芝加哥”现在,我想从此字符串中选择所有“已知”城市。但如您所见,我无法将此字符串拆分为数组(因为“NewYork”)。所以“FIND_IN_SET”不适合我。“LIKE”功能在“错误的方向”工作。所以我需要类似%cities.name%EKIL$string:-D有没有人知道我如何在不使用PHP的情况下处理这个问题?我希望,我没有只见树木不见森林......非常感谢您的帮助!托比亚斯 最佳答案

mysql - Laravel JSON where 子句不区分大小写

我使用的是L5.2和MySQL5.7。我在数据库中的元列中有以下JSON:{"cellphone":"(687)638-4512x22934","last_name":"Bashirian","first_name":"Fidel"}我正在尝试获取以下查询来运行字符串是大写还是小写:User::where('meta->first_name','fidel');我试过类似的东西:User::whereRaw('LOWER(meta->"$.first_name")=?',['fidel']);但那是返回null。关于如何做到这一点的任何想法!?我还希望能够通过全名进行查询,例如“fid

mysql - 在 MySQL select 查询中,检查字符串或在 where 子句中检查 true?

考虑下表:SELECTid,Bill_Freq,Paid_From,Paid_To,Paid_Dt,rev_codeFROMpsr_20160708091408;要求是获取rev_code填充字符串**SUM**的行。我还注意到,对于rev_code填充为**SUM**的每一行,其Bill_Freq既不会为null也不会为零。所以我写了两个查询来获取id最低的行where子句中基于字符串查询的查询:selectmin(id)ashead_id,bill_freq,Paid_From,Paid_To,Paid_Dtfrom`psr_20160708091408`whererev_code

MySQL `INSERT INTO SELECT` 子句在唯一字段上生成重复条目错误

我使用INSERTINTOSELECT跨数据库迁移用户数据,但它会生成Duplicateentry' 'forkey'users_name_unique'虽然数据源是另一个唯一索引,不应该包含任何重复数据。('users_name_unique'是db2.users上的索引名称)这是查询,其中来自db2.users的名称字段是varchar(50)唯一且非空索引,而来自db1.users的名称字段是varchar(60)唯一且非空索引。我已经检查了每条记录中字段的长度,长度都远小于50。INSERTINTOdb2.users(name,email,uid)SELECTname,IF(m

c# - Entity Framework 在 where 子句上添加了一个额外的条件

我已经确定当执行以下表达式时:intaNum=52;varmyArtifacts=mydbcontext.artifacts.Where(a=>a.ParentID==aNum).ToList();在mysql上执行的查询是:SELECT`Extent1`.`ID`,`Extent1`.`ParentID`FROM`artifacts`AS`Extent1`WHERE((`Extent1`.`ParentID`=52)AND(52ISNOTNULL));谁能解释一下为什么要添加最后一个额外条件?AND(52ISNOTNULL)) 最佳答案

mysql - 如何优化 mysql date_format() 以提高 where 子句中的速度?

我正在尝试优化具有220,000行的相对较大的mysql(myisam)表。表格本身并不大——大约23.5MB。那么,真正的问题是什么?-我收到这样的查询:SELECT*FROMtableWHEREDATE_FORMAT(date_field,'%m%d')='1128'LIMIT10我试图在date_field上设置一个索引,但EXPLAIN显示该索引根本没有被使用……我想这并不奇怪,因为DATE_FORMAT()。所以,我打算添加另一列,将日期保存为“%m%d”并在其上放置一个索引。我不想这样做的唯一原因是数据重复。顺便说一句,我使用date_field是一个生日字段,我确定我总是